#pragma once

#include <AST/ExprAST.hpp>

class Return : public Expr {
  private:
    Expr *returnValue = nullptr;

  public:
    Return(Expr *returnValue = nullptr);

    virtual Value *codegen() override;

    friend class graphviz::GraphGenerator;

    virtual VisitResult accept(ASTVisitor &visitor) const override {
        return visitor.visitReturnAST(this);
    }
};